/**
 * 函数作为值传递
 */

// 示例程序
// 定义⼀个操作函数，接收另⼀个函数作为参数
function performOperation(x, y, operation) {
    console.log("Performing operation...");
    return operation(x, y);
}
 // 定义⼏个简单的操作函数
function add(a, b) {
    return a + b;
}
function multiply(a, b) {
    return a * b;
}
 // 传递函数作为参数
console.log("Addition result:", performOperation(5, 3, add));
 // 输出: 8
console.log("Multiplication result:", performOperation(5, 3, multiply));
  // 输出: 15
/**
 * 定义一个函数 perform，它接受两个数字参数和一个操作函数 op。
 * 定义两个操作函数 subtract 和 divide，分别计算减法和除法。
 * 使用 perform 传递不同的操作函数来计算并输出结果。
 */
// 独立完成

function perform(a, b, op) {  
    return op(a, b);  
} 

function subtract(x, y) {  
    return x - y;  
}  

function divide(x, y) {
    if (y === 0) {  
        return "Error: Division by zero";  
    }  
    return x / y;  
}

 
console.log("Subtraction result:", perform(5, 3, subtract)); // 输出: 2  

console.log("Division result:", perform(5, 3, divide)); // 输出: 1.6666666666666667  
  
console.log("Division by zero result:", perform(5, 0, divide)); // 输出: Error: Division by zero
